package com.welike.shibo.exception;

import com.welike.shibo.eneity.JsonResult;
import com.welike.shibo.enums.ResultEnum;
import com.welike.shibo.utils.ResultUtils;

/**
 * 本系统使用的自定义错误类
 * 比如在校验参数时,如果不符合要求,可以抛出此错误类
 * 拦截器可以统一拦截此错误,将其中json返回给前端
 * @author fangyu
 * @version v1.0.0
 * @since 2019/11/22 11:46 上午
 */
public class JsonResultException extends RuntimeException{
    private JsonResult resultJson;

    public JsonResultException(JsonResult resultJson) {
        this.resultJson = resultJson;
    }

    public JsonResult getResultJson() {
        return resultJson;
    }

    /**
     * 调用时可以在任何代码处直接throws这个Exception,
     * 都会统一被拦截,并封装好json返回给前台
     *
     * @param resultEnum 以错误的ErrorEnum做参数
     */
    public JsonResultException(ResultEnum resultEnum) {
        this.resultJson = ResultUtils.error(resultEnum);
    }

}
